Meeting Rooms

Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei), determine if a person could attend all meetings.

For example,

Given [[0, 30],[5, 10],[15, 20]],

return false.

Solution:

  1. /**
  2. * Definition for an interval.
  3. * public class Interval {
  4. * int start;
  5. * int end;
  6. * Interval() { start = 0; end = 0; }
  7. * Interval(int s, int e) { start = s; end = e; }
  8. * }
  9. */
  10. public class Solution {
  11. public boolean canAttendMeetings(Interval[] intervals) {
  12. // Sort the intervals by start time
  13. Arrays.sort(intervals, new Comparator<Interval>() {
  14. public int compare(Interval a, Interval b) { return a.start - b.start; }
  15. });
  16. for (int i = 1; i < intervals.length; i++)
  17. if (intervals[i].start < intervals[i - 1].end)
  18. // found a conflict
  19. return false;
  20. return true;
  21. }
  22. }